﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework;
using EpsiRisk.MoteurJeu;
using EpsiRisk.DonneesPlateau;

namespace EpsiRisk.AffichageJeu
{
    public class ClassNouveauJeuLigne : ClassZone
    {
        public bool Visible;
        static Texture2D SpriteMoins;
        static Texture2D SpriteJoueurHumain;
        static Texture2D SpriteJoueurMachine;
        public int index;

        ClassBouton Moins;
        ClassBouton Type;

        public ClassNouveauJeuLigne(int i)
        {
            backcolor = Color.TransparentWhite;
            index = i;
            Visible = false;
        }

        internal override void Draw(SpriteBatch spriteBatch)
        {
            if (Visible)
            {
                spriteBatch.Begin();

                string texte_joueur;
                texte_joueur = ClassJoueur.listeJoueurs[index].Nom;
                if(texte_joueur != null)
                    spriteBatch.DrawString(ClassDonneesGlobales.SpriteTxt, texte_joueur, new Vector2(position.X + 30, position.Y + 58), ClassJoueur.listeJoueurs[index].cCouleur);

                spriteBatch.End();
                base.Draw(spriteBatch);
            }
        }

        internal override void initialiser(ContentManager content)
        {
            SpriteMoins = content.Load<Texture2D>("Sprites/PopupMenu/NouveauJeu/SpriteMoins");
            SpriteJoueurHumain = content.Load<Texture2D>("Sprites/PopupMenu/NouveauJeu/SpriteJoueurHumain");
            SpriteJoueurMachine = content.Load<Texture2D>("Sprites/PopupMenu/NouveauJeu/SpriteJoueurMachine");

            //type de joueur
            Type = new ClassBouton(SpriteJoueurHumain, SpriteJoueurMachine);
            if (ClassJoueur.listeJoueurs.Count > index)
            {
                if (ClassJoueur.listeJoueurs[index].estHumain)
                {
                    Type.active = true;
                }
                else
                {
                    Type.active = false;
                }
            }
            else
            {
                Type.active = true;
            }
            Type.position = new Vector2(325, 62);
            Type.height = 18;
            Type.width = 70;
            AddBouton(Type);
            Type.Clicked += new EventHandler(Type_Clicked);

            //Supprimer le joueur
            Moins = new ClassBouton(SpriteMoins);
            Moins.position = new Vector2(440, 62);
            Moins.height = 19;
            Moins.width = 20;
            AddBouton(Moins);
            Moins.Clicked += new EventHandler(Moins_Clicked);
        }

        //appui sur un bouton Machine/humain
        void Type_Clicked(object sender, EventArgs e)
        {
            if (ClassJoueur.listeJoueurs[index].estHumain)
            {
                ClassJoueur.listeJoueurs[index].estHumain = false;
                ((ClassBouton)sender).active = false;
            }
            else
            {
                ClassJoueur.listeJoueurs[index].estHumain = true;
                ((ClassBouton)sender).active = true;
            }
        }

        //Suppression d'un joueur
        void Moins_Clicked(object sender, EventArgs e)
        {
            if (ClassJoueur.listeJoueurs.Count > 2)
            {
                ClassDonneesGlobales.zoneNouveauJeu.lignesNouveauJeu[ClassJoueur.listeJoueurs.Count-1].Visible = false;
                ClassJoueur.listeJoueurs.RemoveAt(index);
                ClassDonneesGlobales.zoneNouveauJeu.BoutonAjouterJoueur.Visible = true;
            }
        }
    }
}
